home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / earcd / text / hyper / ixg07db.lha / ixg07db / docs / clock.rexx next >
OS/2 REXX Batch file  |  1997-03-22  |  2KB  |  114 lines

  1. /* Clock.rexx 1.0 (3/97)                         */
  2. /* Sample arexx client program for iX-Guide.     */
  3. /* This client displays the current system time  */
  4.  
  5. if ~show('l', "rexxsupport.library") then
  6.     addlib('rexxsupport.library',0,-30,0)
  7.  
  8. OPTIONS RESULTS
  9.  
  10. /*
  11. ** Every rexx client receives pointer to iXG window as the last argument
  12. ** in form 'iXW=<address>'. That is the window the rexx client was launched
  13. ** from. You always have to pass this pointer to ADDCLIENT !
  14. */
  15.  
  16. PARSE ARG 'iXW=' windowPTR .
  17.  
  18. /*
  19. ** Port name of every rexx client should be in the following form:
  20. ** "IXCL_anythingyouwant_windowPTR"
  21. */
  22.  
  23. portname = "IXCL_clockCL_"
  24. portname = INSERT(windowPTR,portname,LENGTH(portname))
  25.  
  26. /************************************************************************/
  27.  
  28. if show('p',portname) then exit   /* we are already running */
  29.  
  30. ADDRESS IXGUIDE
  31.  
  32. /*
  33. ** Add this client to iX-Guide and pass received window pointer
  34. */
  35.  
  36. AddClient windowPTR
  37.  
  38. /************************************************************************/
  39.  
  40. fgcolor=2
  41. bgcolor=1
  42.  
  43. call openport(portname)
  44. setport portname MOUSE MISC
  45.  
  46. AllocRaster 1
  47. rp=result
  48. Refresh rp
  49.  
  50. OpenFont 'times.font' 24; f1 = result
  51. SetFont rp f1
  52. SetDrMd rp 1
  53. SoftStyle rp 4
  54.  
  55. shutdown=0
  56.  
  57. do until shutdown
  58.  call UpdateTime()
  59.  call delay(25)
  60.  msg = getpkt(portname)
  61.  
  62.  if msg ~= '0000 0000'x then do
  63.   cmd = getarg(msg)
  64.   
  65.   if cmd='0000 0000'x then shutdown=1  /* pointer to window is NULL */
  66.   else if cmd=windowPTR then do        /* this is message from our window */
  67.   cmd = getarg(msg,1)
  68.   
  69.   if cmd='MOUSE' then do
  70.    a1=getarg(msg,2)
  71.  
  72.    if a1=1 then do
  73.     if fgcolor=1 then fgcolor=2
  74.     else fgcolor=1
  75.     if bgcolor=1 then bgcolor=2
  76.     else bgcolor=1
  77.    end
  78.   end
  79.   
  80.   if cmd='MISC' then do
  81.    a4=getarg(msg,2)
  82.    if a4='QUIT' then shutdown=1
  83.    if a4='CLOSEWIN' then shutdown=1 
  84.    
  85.    if a4='LINKOK' then do
  86.     a5=getarg(msg,3)
  87.     a6=getarg(msg,4)
  88.     if (a5='clockdemo.ixml') & (a6='main') then shutdown=0
  89.     else shutdown=1
  90.    end
  91.   end
  92.   
  93.   end
  94.   call reply(msg,0)
  95.  end
  96. end
  97.  
  98. /*
  99. ** Clean up
  100. */
  101.  
  102. CloseFont f1
  103. FreeRaster rp
  104. RemClient
  105. call closeport(portname)
  106. exit
  107.  
  108. UpdateTime:
  109.  SetABPen rp fgcolor bgcolor
  110.  Move rp 5 20
  111.  timestr = Time()
  112.  Text rp timestr
  113. return 0
  114.